package com.xuan.collegeblog.spider.handler;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

import java.util.HashMap;
import java.util.Map;


@Slf4j
public class VideoWebSocketHandler extends TextWebSocketHandler {

    Map<Integer, String> dataMap;

    public VideoWebSocketHandler() {
        dataMap = new HashMap<>();
        String[] lines = data.split("\n");
        for (String line : lines) {
            String[] parts = line.split(",", 2);
            int number = Integer.parseInt(parts[0]);
            String matrix = parts[1].trim();
            dataMap.put(number, matrix);
        }
    }

    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        String payload = message.getPayload();
        log.info("Received message: " + payload);

        // 解析 currentTime
        double currentTime = Double.parseDouble(payload);

        // 根据 currentTime 处理数据，并生成响应
        String response = processDataBasedOnCurrentTime(currentTime);

        // 发送响应消息
        session.sendMessage(new TextMessage(response));
    }

    private String processDataBasedOnCurrentTime(double currentTime) {
        // 根据 currentTime 处理数据的逻辑
        // 例如：返回一些根据 currentTime 生成的数据
        int intValue = (int) currentTime;
        if(!dataMap.containsKey(intValue)){
            return "[[0, 0, 0], [0, 0, 0], [0, 0, 0]]";
        }
        return dataMap.get(intValue);
    }

    @Test
    public void test() {
        int input = 5;
        // 解析数据并查找匹配的行
        String[] lines = data.split("\n");
        for (String line : lines) {
            String[] parts = line.split(",", 2);
            int number = Integer.parseInt(parts[0]);
            if (number == input) {
                String matrix = parts[1].trim();
                System.out.println(matrix);
                break;
            }
        }
    }

    private static final String data =
            "1,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "2,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "3,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "4,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "5,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "6,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "7,[[0, 0, 0], [1, 1, 0], [0, 0, 0]]\n" +
            "8,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "9,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "10,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "11,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "12,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "13,[[0, 0, 0], [0, 1, 1], [0, 0, 0]]\n" +
            "14,[[0, 0, 0], [0, 0, 1], [0, 0, 0]]\n" +
            "15,[[0, 0, 0], [0, 0, 1], [0, 0, 0]]\n" +
            "16,[[0, 0, 0], [0, 0, 1], [0, 0, 0]]\n" +
            "17,[[0, 0, 0], [0, 0, 1], [0, 0, 0]]\n" +
            "18,[[0, 0, 0], [0, 0, 1], [0, 0, 0]]\n" +
            "19,[[0, 0, 0], [0, 0, 1], [0, 0, 0]]\n" +
            "20,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "21,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "22,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "23,[[0, 0, 1], [0, 0, 0], [0, 0, 0]]\n" +
            "24,[[0, 0, 1], [0, 0, 0], [0, 0, 0]]\n" +
            "25,[[0, 0, 1], [0, 0, 0], [0, 0, 0]]\n" +
            "26,[[0, 0, 1], [0, 0, 0], [0, 0, 0]]\n" +
            "27,[[0, 0, 1], [0, 0, 0], [0, 0, 0]]\n" +
            "28,[[0, 1, 1], [0, 0, 0], [0, 0, 0]]\n" +
            "29,[[0, 1, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "30,[[0, 1, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "31,[[0, 1, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "32,[[1, 1, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "33,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "34,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "35,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "36,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "37,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "38,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "39,[[1, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "40,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "41,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "42,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "43,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "44,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "45,[[0, 0, 0], [0, 0, 0], [1, 0, 0]]\n" +
            "46,[[0, 0, 0], [0, 0, 0], [1, 0, 0]]\n" +
            "47,[[0, 0, 0], [0, 0, 0], [1, 0, 0]]\n" +
            "48,[[0, 0, 0], [0, 0, 0], [1, 0, 0]]\n" +
            "49,[[0, 0, 0], [0, 0, 0], [1, 0, 0]]\n" +
            "50,[[0, 0, 0], [0, 0, 0], [1, 0, 0]]\n" +
            "51,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "52,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "53,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "54,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "55,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "56,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "57,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "58,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "59,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "60,[[0, 0, 0], [0, 1, 0], [0, 0, 0]]\n" +
            "61,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "62,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "63,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "64,[[0, 0, 0], [1, 0, 0], [0, 0, 0]]\n" +
            "65,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]\n" +
            "66,[[0, 0, 0], [0, 0, 0], [0, 0, 0]]";
}
